package rtcm

import "dgo/goutils/gnss"

var (
	FreqBandName_BDS = [33]string{"", "", //0~1
		"B1", "B1", "B1", //
		"", "", "",
		"B3", "B3", "B3",
		"", "", "", // 8~13
		"B2", "B2", "B2",
		"", "", "", "", "", // 14~21
		"B2a", "B2a", "B2a", "B2b", // 22~25
		"", "", "", "", // 26~29
		"B1C", "B1C", "B1C", // 30~32
	}

	FreqBandName_GPS = [33]string{"", "", // 0~1
		"L1", "L1", "L1", // 2~4
		"", "", "", // 5~7
		"L2", "L2", "L2", // 8~10
		"", "", "", "", // 11~14
		"B2", "B2", "B2", // 15~17
		"", "", "", "", "", // 18~21
		"L5", "L5", "L5", // 22~24
		"", "", "", "", // 25~29
		"L1", "L1", "L1", // 30~32
	}

	FreqBandName_GLO = [33]string{"", "", // 0~1
		"G1", "G1", "", // 2~4
		"", "", "", // 5~7
		"G2", "G2", "", // 8~10
		"", "", "", "", // 11~14
		"", "", "", // 15~17
		"", "", "", "", "", // 18~21
		"", "", "", // 22~24
		"", "", "", "", // 25~29
		"", "", "", // 30~32
	}

	FreqBandName_GAL = [33]string{"", "", // 0~1
		"E1", "E1", "E1", // 2~4
		"E1", "E1", "", // 5~7
		"E6", "E6", "E6", // 8~10
		"E6", "E6", "", "E5b", // 11~14
		"E5b", "E5b", "", // 15~17
		"E5ab", "E5ab", "E5ab", "E5ab", "", // 18~21
		"E5a", "E5a", "E5a", // 22~24
		"", "", "", "", // 25~29
		"", "", "", // 30~32
	}

	FreqBandName_QZS = [33]string{"", "", // 0~1
		"L1", "", "", // 2~4
		"", "", "", // 5~7
		"", "LEX", "LEX", // 8~10
		"LEX", "", "", "", // 11~14
		"L2", "L2", "L2", // 15~17
		"", "", "", "", "", // 18~21
		"L5", "L5", "L5", // 22~24
		"", "", "", "", // 25~29
		"L1", "L1", "L1", // 30~32
	}
)

func FreqBandFromSignalRtcmId(navsys byte, rtcmSignalId byte) string {
	switch navsys {
	case gnss.SYS_BD:
		return FreqBandName_BDS[rtcmSignalId]
	case gnss.SYS_GPS:
		return FreqBandName_GPS[rtcmSignalId]
	case gnss.SYS_GLO:
		return FreqBandName_GLO[rtcmSignalId]
	case gnss.SYS_GAL:
		return FreqBandName_GAL[rtcmSignalId]
	case gnss.SYS_QZS:
		return FreqBandName_QZS[rtcmSignalId]
	}
	return ""
}
